地点間の距離を計算する2通りの方法を紹介.

住所(地名)から緯度経度

ggmapパッケージのgeocode関数を使えば住所または地名から緯度・経度の座標を取得できる.

library(ggmap)
cities <- c("Hirosihma","Kyoto","Tokyo","Sapporo")
lonlat <- geocode(cities)
df <- data.frame(lonlat,row.names = cities)
df
##                lon      lat
## Hirosihma 132.4553 34.38520
## Kyoto     135.7680 35.01164
## Tokyo     139.6917 35.68949
## Sapporo   141.3544 43.06210

道のり距離(GoogleMap)

ggmapパッケージのmapdist関数を使えばGoogleMapを用いた地図上の道のり距離を計算できる. 始点fromと終点toの住所または地名を入力することで、GoogleMapsApiに接続して計算する.

広島と京都の地図上の道のり距離(車で移動):

mapdist(from = "Hiroshima", to = "Kyoto")
##        from    to      m      km    miles seconds minutes    hours
## 1 Hiroshima Kyoto 361152 361.152 224.4199   16692   278.2 4.636667

地表距離(楕円体上距離)

Imapパッケージのgdist関数を使えば楕円体上の距離を計算できる. デフォルトでは地球の軌道長半径(a)と起動短半径(b)が設定してあるので,地球の地表距離が計算される.

広島と京都の地表距離の計算例:

library(Imap)
gdist(lon.1 = df$lon[1], lat.1 = df$lat[1], 
      lon.2 = df$lon[2], lat.2 = df$lat[2],
      units = "km")
## [1] 311.356